package com.platform.rbac.example.service;

import com.platform.rbac.callback.RoleAndPermissionCallback;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Component
public class UserPermissionImpl implements RoleAndPermissionCallback {
    /**
     * 根据用户名获取用户相应的权限
     * 每次HTTP请求都会执行此方法
     * 实现者可以在这里接入缓存
     *
     * @param username
     * @return
     */
    @Override
    public List<String> loadPerms(String username) {
        List<String> userPermission=new ArrayList<>();
        //模拟用户的权限 实际上需要从数据库查询
        userPermission.add("user:add");
        userPermission.add("user:update");
        userPermission.add("user:delete");
        return userPermission;
    }

    /**
     * 根据用户名获取用户相应的角色
     * 每次HTTP请求都会执行此方法
     * 实现者可以在这里接入缓存
     *
     * @param usrename
     * @return
     */
    @Override
    public List<String> loadRoles(String usrename) {
        List<String> userRoles=new ArrayList<>();
        //模拟用户的角色 实际上需要从数据库查询
        userRoles.add("user");
        return userRoles;
    }
}
